# Make LaTeX chunk for Table 1

# Load Models and Store AUCs
countries <- c('indo', 'colo')
dvs <- c("spike", "spikeHalf", "spike2Y", "spike2YHalf")
algos <- c('lasso', 'rf', 'gbm', 
           'nn', 'ebma')

auc_array <- array(NA,
                   dim = c(length(countries),
                           length(dvs),
                           length(algos)),
                   dimnames = list(countries,
                                   dvs,
                                   algos))
for (country in countries) {
  for (algo in algos) {
    modelname = algo
    for (dv in dvs) {
      filename <- paste(modeldir,"/",
                    country,
                    "_",algo,"_",
                    dv,
                    "_full.RData",
                    sep = "")
      load(filename)
      aucs_by_year = c()

      for (i in 1:length(get(paste(modelname,".results",sep="")))) {
          predictions <- as.vector(get(paste(modelname,".results",sep=""))[[i]]$fit.oos)
          realizations <- as.vector(get(paste(modelname,".results",sep=""))[[i]]$actual.oos)
          aucs_by_year <- c(aucs_by_year,
                            roc(response = realizations,
                                predictor = predictions)[['auc']])
      }
      auc_array[country, dv, algo] <- mean(aucs_by_year)
    }
  }
}


# Build Table with Labels
country.labels <- c(indo='Indonesia',
                    colo='Colombia')
outcome.labels <- c(spike="$\\ge$ 1 s.d. increase in events",
                    spikeHalf="$\\ge$ 0.5 s.d. increase in events",
                    spike2YHalf="$\\ge$ 0.5 s.d. increase in events over 2 years",
                    spike2Y="$\\ge$ 1 s.d. increase in events over 2 years")
model.labels <- c(lasso='LASSO',
                  rf='Random\\\\Forest',
                  gbm='Adaptive\\\\Boosting',
                  nn='Neural\\\\Network',
                  ebma='EBMA')

table <- auc_array
dimnames(table)[[1]] <- country.labels[dimnames(table)[[1]]]
dimnames(table)[[2]] <- outcome.labels[dimnames(table)[[2]]]
dimnames(table)[[3]] <- model.labels[dimnames(table)[[3]]]

# Print to Latex
print.texfragment(table = table,
                  filepath = "tables",
                  file = "table_A8")

